package com.servicios.app.comun.impl;

import java.awt.image.RescaleOp;

import com.core.app.servicios.ExcepcionServicio;
import com.objetos.transf.datos.app.comun.ObtenerStatusPorCriterioPeticion;
import com.objetos.transf.datos.app.comun.ObtenerStatusPorCriterioRespuesta;
import com.objetos.transf.datos.app.comun.ObtenerUsuarioSistema_PermisoPorCriterioPeticion;
import com.objetos.transf.datos.app.comun.ObtenerUsuarioSistema_PermisoPorCriterioRespuesta;
import com.objetos.transf.datos.app.comun.ValidarCadenasSimilaresPeticion;
import com.objetos.transf.datos.app.comun.ValidarCadenasSimilaresRespuesta;
import com.objetos.transf.datos.app.comun.ValidarCaracteresPermitidosPeticion;
import com.objetos.transf.datos.app.comun.ValidarCaracteresPermitidosRespuesta;
import com.objetos.transf.datos.app.comun.ValidarEmailPeticion;
import com.objetos.transf.datos.app.comun.ValidarEmailRespuesta;
import com.objetos.transf.datos.app.comun.ValidarFechaPeticion;
import com.objetos.transf.datos.app.comun.ValidarFechaRespuesta;
import com.servicios.app.comun.Comun;

import com.servicios.datos.app.comun.ObtenerStatusPorCriterio;

import com.servicios.datos.app.comun.ObtenerUsuarioSistema_PermisoPorCriterio;
import com.servicios.excepcion.ExcepcionServicioFachada;

import com.servicios.negocio.app.comun.ValidarCadenasSimilares;
import com.servicios.negocio.app.comun.ValidarCaracteresPermitidos;
import com.servicios.negocio.app.comun.ValidarEmail;
import com.servicios.negocio.app.comun.ValidarFecha;

public class ComunImpl implements Comun{
	
	private ValidarFecha validarFecha;
	private ObtenerStatusPorCriterio obtenerStatusPorCriterio;
	private ObtenerUsuarioSistema_PermisoPorCriterio obtenerUsuarioSistema_PermisoPorCriterio;
	private ValidarCadenasSimilares validarCadenasSimilares;
	private ValidarCaracteresPermitidos validarCaracteresPermitidos;
	private ValidarEmail validarEmail;
	
	
	public ValidarEmail getValidarEmail() {
		return validarEmail;
	}
	public void setValidarEmail(ValidarEmail validarEmail) {
		this.validarEmail = validarEmail;
	}
	public ValidarCaracteresPermitidos getValidarCaracteresPermitidos() {
		return validarCaracteresPermitidos;
	}
	public void setValidarCaracteresPermitidos(
			ValidarCaracteresPermitidos validarCaracteresPermitidos) {
		this.validarCaracteresPermitidos = validarCaracteresPermitidos;
	}
	
	public ObtenerUsuarioSistema_PermisoPorCriterio getObtenerUsuarioSistema_PermisoPorCriterio() {
		return obtenerUsuarioSistema_PermisoPorCriterio;
	}
	public void setObtenerUsuarioSistema_PermisoPorCriterio(
			ObtenerUsuarioSistema_PermisoPorCriterio obtenerUsuarioSistema_PermisoPorCriterio) {
		this.obtenerUsuarioSistema_PermisoPorCriterio = obtenerUsuarioSistema_PermisoPorCriterio;
	}
	
	public ValidarFecha getValidarFecha() {
		return validarFecha;
	}

	public void setValidarFecha(ValidarFecha validarFecha) {
		this.validarFecha = validarFecha;
	}
	
	public ObtenerStatusPorCriterio getObtenerStatusPorCriterio() {
		return obtenerStatusPorCriterio;
	}

	public void setObtenerStatusPorCriterio(
			ObtenerStatusPorCriterio obtenerStatusPorCriterio) {
		this.obtenerStatusPorCriterio = obtenerStatusPorCriterio;
	}
	
	public ValidarCadenasSimilares getValidarCadenasSimilares() {
		return validarCadenasSimilares;
	}
	public void setValidarCadenasSimilares(
			ValidarCadenasSimilares validarCadenasSimilares) {
		this.validarCadenasSimilares = validarCadenasSimilares;
	}
	@Override
	public ValidarFechaRespuesta validarFecha(ValidarFechaPeticion peticion)
			throws ExcepcionServicioFachada {
		ValidarFechaRespuesta respuesta=null;
		try{
			respuesta = validarFecha.ejecutar(peticion);
		}catch(ExcepcionServicio e){
			throw new ExcepcionServicioFachada("Error al ejecutar el metodo validarEfectivoCobro de la fachada Comun.-"+e.getMessage(),e.getCause());
		}
		// TODO Auto-generated method stub
		return respuesta;

	}

	@Override
	public ObtenerStatusPorCriterioRespuesta obtenerStatusPorCriterio(
			ObtenerStatusPorCriterioPeticion peticion)
			throws ExcepcionServicioFachada {
		ObtenerStatusPorCriterioRespuesta respuesta = null;
		try{
			respuesta = obtenerStatusPorCriterio.ejecutar(peticion);
		}catch(ExcepcionServicio excepcion){
			throw new ExcepcionServicioFachada("Error al ejecutar el servicio obtenerStatusPorCriterio de la fachada Comun.-"+excepcion.getMessage(), excepcion.getCause());
		}
		return respuesta;
	}
	
	@Override
	public ObtenerUsuarioSistema_PermisoPorCriterioRespuesta obtenerUsuarioSistema_PermisoPorCriterio(
			ObtenerUsuarioSistema_PermisoPorCriterioPeticion peticion)
			throws ExcepcionServicioFachada {
		ObtenerUsuarioSistema_PermisoPorCriterioRespuesta respuesta = null;		
		try{			
			
			respuesta = obtenerUsuarioSistema_PermisoPorCriterio.ejecutar(peticion);		
						
		}catch(ExcepcionServicio e){
			throw new ExcepcionServicioFachada("Error al ejecutar el servicio obtenerUsuarioSistema_PermisoPorCriterio en Fachada de Comun.-" + e.getMessage(), e.getCause());
		}
		return respuesta;
	}
	
	
		
	@Override
	public ValidarCadenasSimilaresRespuesta validarCadenasSimilares(
			ValidarCadenasSimilaresPeticion peticion)
			throws ExcepcionServicioFachada {
		ValidarCadenasSimilaresRespuesta respuesta = null;
		try {
			respuesta = validarCadenasSimilares.ejecutar(peticion);
		} catch (ExcepcionServicio e) {
			throw new ExcepcionServicioFachada("Error al ejecutar el servicio ValidarCadenasSimilares de la fachada Comun.-" + e.getMessage(), e.getCause());
		}
		return respuesta;
	}
	
	@Override
	public ValidarCaracteresPermitidosRespuesta validarCaracteresPermitidos(
			ValidarCaracteresPermitidosPeticion peticion)
			throws ExcepcionServicioFachada {
		
		ValidarCaracteresPermitidosRespuesta respuesta = null;
		try {
			respuesta = validarCaracteresPermitidos.ejecutar(peticion);
		} catch (ExcepcionServicio e) {
			throw new ExcepcionServicioFachada("Error al ejecutar el servicio ValidarCaracteresPermitidos de la fachada Comun.-" + e.getMessage(), e.getCause());
		}
		
		return respuesta;
	}
	@Override
	public ValidarEmailRespuesta validarEmail(ValidarEmailPeticion peticion)
			throws ExcepcionServicioFachada {
		// TODO Auto-generated method stub
		try {
			
			return validarEmail.ejecutar(peticion);
		
		} catch (ExcepcionServicio e) {
			
			throw new ExcepcionServicioFachada("Error al ejecutar la operacion validarEmail de la fachada Comun.-" + e.getMessage(), e.getCause());
		}
	}
	
	
	
}
